package DataStructure.GenericLearning.Demo1;

/**
 *  学习 泛型
 */
public class Demo {
    public static void main(String[] args) {
        shout("呵！");
        shout(555);
        shout('h');
        Person<String> stringPerson = new Person<>("18", "张三");
        Person<Integer> integerPerson = new Person<>(18, 9527);
        System.out.println(stringPerson);
        System.out.println(integerPerson);
    }
    // 方法使用泛型格式：
    // 修饰符 <声明泛型> 返回值类型 方法名(参数列表) { //... }
    public static <T> void shout(T t) {
        System.out.println(t);
    }
}

// 类使用泛型格式：
// 修饰符 class 类名<声明泛型> { //... }
class Person<E> {
    E name;
    E age;

    public Person(E name, E age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name=" + name +
                ", age=" + age +
                '}';
    }
}
